package com.tianji.api.client.remark.fallback;

import com.tianji.api.client.remark.RemarkClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.Set;

/**
 * 微服务保护机制
 */
// @Component 为什么不加这个注解，因为其他微服务需要这个的时候还需要扫描这个类
// 就单独扫描就很麻烦 我们就卸载FallBackConfig配置类里面
// 我们这里不是扫描，使用的是springFactoryBean的方式
// 项目一旦启动，就会将这个类放到spring容器中
@Slf4j
public class RemarkClientFallback implements FallbackFactory<RemarkClient> {

    @Override
    public RemarkClient create(Throwable cause) {
        log.error("查询学习服务异常", cause);
        return new RemarkClient() {

            @Override
            public Set<Long> getLikesStatus(Iterable<Long> bizIds) {
                return Collections.emptySet();
            }
        };
    }
}
